'''
根据下面的需求描述，完成简单的用户管理系统，注意封装函数

1. 后台管理员只有一个用户: admin, 密码: admin
2. 当管理员登陆账号成功后， 可以管理前台会员信息.
3. 会员信息管理包含方法:
   a.添加会员信息
   b.删除会员信息
   c.查看会员信息
4. 对会员按照年龄降序排序
5. 退出
'''
import random
#? 指定唯一用户名和唯一密码
only_admin = "admin"
only_password ="admin"
user_list = [] #? 存储会员信息表
user_gender = ["男","女"] #? 性别列表
#? 随机生成会员号
def get_mid():
    while True:
        mid = str(random.randint(10000,99999))
        if mid not in [ele["mid_name"] for ele in user_list]:
            return mid
#? 添加会员
def add_mid():
    mid = get_mid()
    print(f"系统生成会员号是{mid}")
    mid_name = input("请输入新会员名字：")
    mid_sex =  input("请输入新会员性别：")
    mid_age = input("请输入新会员年龄:")
    while True:
        if mid_sex!=user_gender[0] and mid_sex!=user_gender[1]:
            print("请输入正确的性别")
            add_mid()
        elif mid_sex==user_gender[0] or mid_sex==user_gender[1]:
            user_list.append({"mid":mid,"mid_name":mid_name,"mid_sex":mid_sex,"mid_age":mid_age})
            print("添加成功")
        break

#? 删除会员
def delete_mid():
    del_mid = input("请输入需要删除的会员号")
    for ele in user_list:
        if del_mid in ele["mid"]:
            user_list.remove(ele)
            print("删除成功！！")
            break
    else:
        print(f"你要删除的会员{del_mid}不存在！！")

#? 查看会员信息
def show_message():
    show_mid = input("请输入要查询的会员号:")
    for ele in user_list:
        if show_mid in ele["mid"]:
            print("会员信息如下~")
            print(ele)
            break
    else:
        print(f"要查询的会员{show_mid}不存在!!")

#? 查看所有会员信息
def show_all():
    print("所有会员信息如下")
    for all in user_list:
        print(all)

#? 会员信息按照年龄信息排序
def sort_mid_age():
    user_list.sort(user_list,key = lambda age:age["mid_age"],reverse=True)
    show_all()

if __name__ == "__main__":
    for num in range(3):
        user_admin = input()#? 输入用户名
        user_password = input() #? 输入密码
        if user_admin == only_admin and user_password == only_password:
            print("管理员登录成功！！！")
            print("欢迎进入会员系统！将为您展示以下功能")
            while True:
                print("""该系统有如下功能：
                    1.添加会员信息
                    2.删除会员信息
                    3.查看指定的会员信息
                    4.查看所有会员信息
                    5.对会员按照年龄降序排序
                    6.退出系统""")
                Feature_sel = int(input("请输入对应功能的数字"))
                if Feature_sel ==1:
                    add_mid()
                elif Feature_sel ==2:
                    delete_mid()
                elif Feature_sel ==3:
                    show_message()
                elif Feature_sel == 4:
                    show_all()
                elif Feature_sel == 5:
                    sort_mid_age()
                elif Feature_sel == 6:
                    print("欢迎再次使用~~")
                    break           
            break
        else:
            print("用户名或密码错误！请重新输入")
    else:
        print("三次输入错误,禁止登录")
